home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / qbprog.EXE / DISCRIMI.BAS < prev    next >
BASIC Source File  |  1996-05-11  |  14KB  |  493 lines

  1. '***************************************************************************************************
  2. '***************************************************************************************************
  3. '***************************************************************************************************
  4. '***************************************************************************************************
  5. '**************                                                                       **************
  6. '**************                          1 9 9 4  -  1 9 9 5                          **************
  7. '**************                                                                       **************
  8. '**************                       D I S C R I M I N A N T                         **************
  9. '***************************************************************************************************
  10. '**************                                                                       **************
  11. '**************                   N  E  S  I  M     R  A  Z  O  N                     **************
  12. '**************                                                                       **************
  13. '***************************************************************************************************
  14. '***************************************************************************************************
  15. '***************************************************************************************************
  16. '***************************************************************************************************
  17.  
  18. DECLARE SUB DBUYUK ()
  19. DECLARE SUB EBUYUK ()
  20. DECLARE SUB FBUYUK ()
  21. DECLARE SUB ABUYUK ()
  22. DECLARE SUB BBUYUK ()
  23. DECLARE SUB CBUYUK ()
  24. DEFINT A-Z
  25. DECLARE SUB EKRAN ()
  26. DECLARE SUB FPRINT (x%, y%, yazi$, renk%)
  27. DECLARE SUB renkayar (no%, yesil%, mavi%, kirm%)
  28. DECLARE SUB renkal (no%, y%, m%, k%)
  29. DECLARE SUB Sdraw (A$, Sx AS SINGLE, Sy AS SINGLE, Size AS SINGLE, Wdth, Slope, Col)
  30. DECLARE FUNCTION RNI% (A%)
  31. '$INCLUDE: 'qb.bi'
  32.  WIDTH 40: COLOR 14, 1: CLS
  33.  LOCATE 5, 12: PRINT "╔══════════════╗"
  34.  LOCATE 6, 12: PRINT "║ DISCRIMINANT ║"
  35.  LOCATE 7, 12: PRINT "╚══════════════╝"
  36.  FPRINT 12, 14, "Nesim RAZON", 4: FPRINT 12, 14, "Presents...", 4
  37.  
  38.  
  39. CONST False = 0, TRUE = -1
  40. 10660 DATA "mf ml l8 t125 O1b4 e b o2c4 o1e"
  41. 10670 DATA "o2c c#4 o1e o2c# c4o1 eo2 c"
  42. 10680 DATA "O1b4 e b o2c4 o1e o2c c#4 o1e o2c# c4o1 eo2 c"
  43. 10690 DATA "t150mn o3e f#16 f#16 f# f#3o2 e e e"
  44. 10700 DATA "mno3e g16 g16 g g3o2 f# F# F#"
  45. 10710 DATA "mno3e f#16 f#16 f# f#3o2 e e e"
  46. 10720 DATA "mno3e g16 g16 g g3o2 f# F# F#"
  47. 10730 DATA "mno3e f#16 f#16 f#f#3o2 e e e"
  48. 10740 DATA "mno3e g16 g16 g g3o2 f# F# e"
  49. 10750 DATA "mlo4d# o3b64 o4d d2o2 g64 b f#64 a"
  50. 10760 DATA "mlg24 b1."
  51. 10770 DATA "mno2e f#16 f#16 f# f#3o3 e e e"
  52. 10780 DATA "mno2e g16 g16 g g3 o3f# F# F#"
  53. 10790 DATA "mno2e f#16 f#16 f# f#3 o3e e e"
  54. 10800 DATA "mno2e g16 g16 g g3 o3f# F# F#"
  55. 10810 DATA "mno2e f#16 f#16 f# f#3 o3e e e"
  56. 10820 DATA "mno2e g16 g16 g g3 o3f# F# e"
  57. 10830 DATA "mlo4d# O3b64 o4d d2 o3g64 b f#64 a"
  58. 10840 DATA "mlg24 b1."
  59. 10850 DATA "t125 O1b4e b o2c4 o1eo2 c c#4 o1e o2c# c4o1 e o2c"
  60. 10860 DATA "O1b4 e b o2c4 o1e o2c c#4 o1e o2c# c4o1 e o2c"
  61. 10870 DATA "mlo3e e64 g4 o4 d# o3g64 b64 o4d4. o3g"
  62. 10880 DATA "f64 a# g64 b2.."
  63. 10890 DATA "g7 a32 g32 f#4. o2b o3e c#"
  64. 10900 DATA "c#2 o2g64 b64 o3f#6 p16 o2g64 b64 o3f#4"
  65. 10910 DATA "mlo3e e64 g4 o4d# o3g64 b64 o4d4. o3g"
  66. 10920 DATA "f64 a# g64 b2.."
  67. 10930 DATA "g7 a32 g32 f#4. o2b o3d# e"
  68. 10940 DATA "e2 o2g64 b64 o3c#6 p16 o2g64 b64 o3c#4"
  69. 10950 DATA "mlo3 e e64 g4 o4d# o3g64 b64o4 d4. o3g"
  70. 10960 DATA "f64 a# g64 b2.."
  71. 10970 DATA "g7 a32 g32 f#4. o2bo3 e c#"
  72. 10980 DATA "c#2 o2g64 b64 o3f#6 p16 o2g64 b64 o3f#4"
  73. 10990 DATA "mlo3e e64 g4 o4d# o3g64 b64 o4d4. o3g"
  74. 11000 DATA "f64 a# g64 b2.."
  75. 11010 DATA "g7 a32 g32 f#4. o2bo3 d#e"
  76. 11020 DATA "e2 o2g64 b64 o3c#6 p16 o2g64 b64o3 c#4"
  77. 11030 DATA "t180o2g64 b64 o3e8 o2g64 b64o3 e4 o2g64 b64 o3e8 o2a64 o3d#64 f#8. e16o2 a64 o3d#64 f#4"
  78. 11040 DATA "o2b64 o3e64 g8 o2b64 o3e64 g4 o2b64 o3e64 g8 o2a64 o3d#64 f#8. e16 o2a64 o3d#64 f#4"
  79. 11050 DATA "o2g64 b64 o3e8 o2g64 b64 o3e4 o2g64 b64 o3e8 o2a64 o3d#64 f#8. e16o2 a64 o3d#64 f#4"
  80. 11060 DATA "o2b64 o3e64 g8 o2b64 o3e64 g4 o2b64 o3e64 g8 o2a64 o3d#64 f#8. e16o2 a64 o3d#64 f#4"
  81. 11070 DATA "c#64 e64 g64 b8 c#64 e64 g64 b8 p6 mlo1b2 b8 o3c#64 e64 g64b8 o3c#64 e64 g64 b8"
  82. 11080 DATA "t100 p8 o1mlb4. b4o3 c#64 e64 g64 b16 b8 b16 b8 c#64 e64 g64 b8"
  83. 11090 DATA "t125O1b4 e bo2 c4 o1e o2c c#4 o1e o2c# c4 o1e o2c"
  84. 11100 DATA "t150mno3e f#16 f#16 f# f#3 e e e"
  85. 11110 DATA "mno3e g16 g16 g g3 f# F# F#"
  86. 11120 DATA "mno3e f#16 f#16 f# f#3 e e e"
  87. 11130 DATA "mno3e g16 g16 g g3 f# F# F#"
  88. 11140 DATA "mno3e f#16 f#16 f# f#3 e e e"
  89. 11150 DATA "mno3e g16 g16 g g3 f# F# e"
  90. 11160 DATA "mlo4d# o3b64 o4d d2 g64 b f#64 a"
  91. 11170 DATA "mlg24b1."
  92. 11180 DATA "mlt125 p16 o2e8 g4 o3d# d4 o2g b"
  93. 11190 DATA "b o3f# f4 o2b o3d4 a#"
  94. 11200 DATA "a4 f a8 a4 o3d# d"
  95. 11210 DATA "d p8 p4 o1e56 b56 o2g56 b56 o3c#56 f#2..
  96. DATA "END"
  97.  
  98. DIM BondMusic$(1500)
  99. DIM Characters$(128), C1 AS SINGLE, C2 AS SINGLE
  100.  
  101. DO
  102.     READ A$
  103.     IF A$ <> "END" THEN
  104.     Position = 1
  105.     DO
  106.         FOR A = Position TO LEN(A$)
  107.         IF MID$(A$, A, 1) = " " THEN EXIT FOR
  108.         NEXT
  109.         BondMusic$(Notes) = MID$(A$, Position, A - Position): Notes = Notes + 1
  110.         Position = A + 1
  111.     LOOP UNTIL Position > LEN(A$)
  112.     END IF
  113. LOOP UNTIL A$ = "END"
  114. Notes = Notes - 1
  115.  
  116. ON PLAY(2) GOSUB RefreshMusic
  117. GOSUB InvokeMusic
  118. ON TIMER(2) GOSUB CheckKeyboard
  119. TIMER ON
  120.  
  121.  
  122.  
  123. DATA U7E1R3F1D3NL5D4BR2
  124. DATA U8R4F1D2G1NL4F1D2G1NL4BR3
  125. DATA BU1F1R3NE1L3H1U6E1R3F1BR2BD7
  126. DATA U8R4F1D6G1NL4BR3
  127. DATA U8NR5D4NR3D4R5BR2
  128. DATA U8NR5D4NR3D4BR7
  129. DATA U8R4NF1BD8NL4E1U2H1NL1BR3BD4
  130. DATA U8D4R5NU4D4BR2
  131. DATA NR4R2U8NL2R2BR2BD8
  132. DATA BU1NU1F1R3E1NU7BR2BD1
  133. DATA NU8U4R1F4BU8G4BR6BD4
  134. DATA NU8R5BR2
  135. DATA U8F3E3D8BR2
  136. DATA U8F6NU6D2BR2
  137. DATA U8R5D8NL5BR2
  138. DATA U8R4F1D2G1NL4BR3BD4
  139. DATA BU1U6E1R3F1D4G3L1H1BR4NH2F1BR2
  140. DATA U8R4F1D2G1L4R1F4BR2
  141. DATA BU1F1R3E1U2H1L3H1U2E1R3F1BR2BD7
  142. DATA BU8R6L3D8BR5
  143. DATA NU8R5NU8BR2
  144. DATA BU2NU6F2R1E2NU6BR2BD2
  145. DATA NU8E3F3NU8BR2
  146. DATA U1E6U1BL6D1F6D1BR2
  147. DATA BR3U4H2U2BR4D2G2BR4BD4
  148. DATA NR5U2E5U1NL5BR2BD8
  149. DATA bu1u0e1r3u1h1nl2f1d2g1l2nh1r2br2nh1br2
  150. DATA nu8u4r3f1d2g1nl3br3
  151. DATA buu2er3bd4l3nh1br5
  152. DATA buu2er3nu4d4l3nh1br5
  153. DATA buu2er2fgl3d1fr2br3
  154. DATA br2u7er2bd4bl1nl4bd4br2
  155. DATA bd1fr2eu2l3hu1er2fd3br2
  156. DATA u8d4r3fd3br2
  157. DATA br1u4bu2u0br2bd6
  158. DATA bd1fr2eu5bu2u0br2bd6
  159. DATA u8d6r1ne2f2br2
  160. DATA br1nu8br2
  161. DATA u3er0fer0fd3br2
  162. DATA u4r3fd3br2
  163. DATA buu2er2fd2gl2nh1br5
  164. DATA nd2u3er2fd2gnl3br3
  165. DATA buu2er2fd5u2l3nhbr5
  166. DATA u4d2e2rbd4br2
  167. DATA r2ehl1her2br2bd4
  168. DATA br2u6d2nl2r2br2bd4
  169. DATA bunu3fr2enu3br2bd1
  170. DATA br2h2nu2f2e2nu2bd2br2
  171. DATA nu4refrnu4br2
  172. DATA e4bl4f4br2
  173. DATA bunu3fr2nu4d2gl1nhbu3br4
  174. DATA nr3e3unl3br2bd4
  175.  
  176. FOR A = ASC("A") TO ASC("Z")
  177.     READ Characters$(A)
  178. NEXT
  179. FOR A = ASC("a") TO ASC("z")
  180.     READ Characters$(A)
  181. NEXT
  182. Characters$(32) = "BR7"
  183. Characters$(63) = "br4u0bu2u1e3h2l3g1BM+8,+7"
  184. Characters$(45) = "BU3R4BR2BD3"
  185. Characters$(39) = "Bu5br1e1u2br3bd8"
  186. Characters$(33) = "u1bu2u5br1bd8"
  187. SCREEN 7, , 2, 0
  188. FOR A = -5 TO 319 STEP 10
  189.     LINE (A, 0)-(A, 199), 1
  190. NEXT
  191. FOR A = -5 TO 199 STEP 7
  192.     LINE (0, A)-(319, A), 1
  193. NEXT
  194. SCREEN 7, , 1, 0
  195. PCOPY 2, 0
  196. PCOPY 2, 1
  197. DO
  198.     SLEEP 1
  199.     A$ = "Hello !"
  200.     FOR x = 64 TO 4 STEP -4
  201.     PSET ((320 - (25 * (x / 4))) / 2, 100), 0
  202.     DRAW "C14S" + STR$(x)
  203.     FOR A = 1 TO LEN(A$)
  204.         DRAW Characters$(ASC(MID$(A$, A, 1)))
  205.     NEXT
  206.     PCOPY 1, 0: PCOPY 2, 1
  207.     NEXT
  208.     DRAW "s12"
  209.     A$ = "DISCRIMINANT"
  210.     C = -1
  211.     FOR B = 320 TO -140 STEP -2
  212.     PSET (B, C), 0: C = C + 1
  213.     DRAW "c14"
  214.     FOR A = 1 TO LEN(A$)
  215.         DRAW Characters$(ASC(MID$(A$, A, 1)))
  216.     NEXT
  217.     PCOPY 1, 0: PCOPY 2, 1
  218.     NEXT
  219.     DRAW "s8"
  220.     A$ = "Programmed by"
  221.     B = 40
  222.     FOR C = -1 TO 230 STEP 2
  223.     PSET (B, C), 0
  224.     DRAW "c14"
  225.     FOR A = 1 TO LEN(A$)
  226.         DRAW Characters$(ASC(MID$(A$, A, 1)))
  227.     NEXT
  228.     PCOPY 1, 0: PCOPY 2, 1
  229.     NEXT
  230.     A$ = "Nesim RAZON"
  231.     C = 100
  232.     C2 = 320
  233.     C1 = -5
  234.     FOR x = 1 TO 230
  235.     C1 = C1 + .05
  236.     C2 = C2 + C1
  237.     PSET (C2, C), 0
  238.     DRAW "c14"
  239.     FOR A = 1 TO LEN(A$)
  240.         DRAW Characters$(ASC(MID$(A$, A, 1)))
  241.     NEXT
  242.     PCOPY 1, 0: PCOPY 2, 1
  243.     NEXT
  244.     A$ = "START!"
  245.     C = -1
  246.     C1 = 0
  247.     C2 = 0
  248.     B = 125
  249.     FOR x = 1 TO 267
  250.     C1 = C1 + .025: C2 = C2 + C1: C = C + C2: IF C > 199 THEN C = 199: C2 = -C2
  251.     PSET (B, C), 0
  252.     DRAW "c14"
  253.     FOR A = 1 TO LEN(A$)
  254.         DRAW Characters$(ASC(MID$(A$, A, 1)))
  255.     NEXT
  256.     PCOPY 1, 0: PCOPY 2, 1
  257.     NEXT
  258.     FOR A = 1 TO 6
  259.     FOR B = 8 TO 64 STEP 4
  260.         DRAW "BM120,190"
  261.         FOR C = 1 TO 6
  262.         IF C = A THEN DRAW "S" + STR$(B)
  263.             DRAW Characters$(ASC(MID$(A$, C, 1)))
  264.         IF C = A THEN DRAW "S8"
  265.         NEXT
  266.         PCOPY 1, 0: PCOPY 2, 1
  267.     NEXT
  268.     NEXT
  269.  
  270.  
  271. LOOP
  272. END
  273. RefreshMusic:
  274.     OK = TRUE
  275.     FOR RA = NextNote TO NextNote + RefreshPacket
  276.     PLAY "MB" + BondMusic$(RA)
  277.     LOCATE 1, 1
  278.     NEXT
  279.     NextNote = NextNote + RefreshPacket + 1
  280.     RefreshPacket = 10
  281.     IF NextNote > Notes THEN NextNote = 0
  282. RETURN
  283.  
  284. InvokeMusic:
  285.     NextNote = 0
  286.     RefreshPacket = 11
  287.     GOSUB RefreshMusic
  288.     PLAY ON
  289. RETURN
  290. CheckKeyboard:
  291.     IF INKEY$ <> "" THEN
  292.     SCREEN 0
  293.     WIDTH 80
  294. '        PRINT "Thanks for running me!"
  295.      GOTO anaprogram
  296.     END IF
  297. RETURN
  298.  
  299. anaprogram:
  300. 1 CALL EKRAN
  301. LOCATE 6, 9: PRINT "( x²+ x+ )"
  302. SCREEN 9
  303. COLOR 4: LOCATE 6, 10: PRINT "a": LOCATE 6, 14: PRINT "b": LOCATE 6, 17: PRINT "c":
  304. LOCATE 6, 20: COLOR 1: PRINT "FORMUNDAKI POLINOMLARIN DISKRIMINANTLARINI HESAPLAR..."
  305. 12 COLOR 5: LOCATE 11, 20: INPUT "A=", A:
  306. IF A = 0 OR A > 50 THEN GOTO 12
  307.  
  308. 13 LOCATE 11, 40: INPUT "B=", B
  309. IF B = 0 OR B > 50 THEN GOTO 13
  310.  
  311. 14 LOCATE 11, 60: INPUT "C=", C
  312. IF C > 150 THEN GOTO 14
  313.  
  314. IF B > 0 AND C < 0 THEN CALL CBUYUK
  315. IF B > 0 AND C > 0 THEN CALL BBUYUK
  316. IF B < 0 AND C > 0 THEN CALL ABUYUK
  317.  
  318. IF B = 0 AND C = 0 THEN CALL DBUYUK
  319. IF B = 0 THEN CALL EBUYUK
  320. IF C = 0 THEN CALL FBUYUK
  321. IF B = 0 AND C > 0 THEN CALL BBUYUK
  322. IF C = 0 AND B > 0 THEN CALL BBUYUK
  323.  
  324. COLOR 1: LOCATE 12, 30: PRINT A; "x²"
  325.      LOCATE 12, 37: PRINT B; "x"
  326.      LOCATE 12, 43: PRINT C
  327.  
  328. DEVAM2:
  329. D = (B * B) - 4 * A * C
  330.  
  331. DRAW "C0"
  332. DRAW "M120,268"
  333. DRAW "C1"
  334. DRAW "F15L30E15"
  335. COLOR 4: LOCATE 14, 27: PRINT "▄▄▄▄"; : COLOR 1
  336. LOCATE 18, 20: PRINT "=  "; D
  337.  
  338. IF D < 0 THEN GOTO KUCUK
  339. IF D = 0 THEN GOTO ESIT
  340. IF D > 0 THEN GOTO BUYUK
  341.  
  342. KUCUK:
  343. LOCATE 18, 30: PRINT "(IKI TANE HAYALI KOK VAR...)"
  344. LOCATE 19, 30: PRINT "(COZUM KUMESI YOK...)"
  345. GOTO son
  346.  
  347. ESIT:
  348. LOCATE 18, 30: PRINT "(IKI TANE ESIT KOK VAR...)"
  349. ESITKOKLER = (-1 * B) / (2 * A)
  350. LOCATE 19, 30: PRINT " X1,2="; ESITKOKLER;
  351. GOTO son
  352.  
  353. BUYUK:
  354. LOCATE 18, 30: PRINT "(IKI TANE GERCEL KOK VAR...)"
  355. R% = 2 * A
  356.  
  357. KOK1% = ((-1 * B) + (SQR(D))):
  358. KOK1B% = KOK1% / R%
  359.  
  360. KOK2% = ((-1 * B) - (SQR(D)))
  361. KOK2B% = KOK2% / R%
  362.  
  363. LOCATE 19, 30: PRINT " X1="; KOK1% / R%; "   "; "X2="; KOK2% / R%
  364. GOTO son
  365.  
  366. son:
  367. LOCATE 21, 10: INPUT "Devam etmek istiyor musunuz ?"; E$
  368. IF E$ = "e" OR E$ = "E" THEN GOTO 1 ELSE END
  369.  
  370. '***************************************************************************************************
  371. '***************************************************************************************************
  372. '***************************************************************************************************
  373.  
  374. SUB ABUYUK
  375. ' LOCATE 12, 41: PRINT "+"
  376.  LOCATE 12, 42: PRINT "+"
  377. END SUB
  378.  
  379. SUB BBUYUK
  380. ' LOCATE 12, 35: PRINT "+"
  381. ' LOCATE 12, 41: PRINT "+"
  382.  LOCATE 12, 36: PRINT "+"
  383.  LOCATE 12, 42: PRINT "+"
  384.  
  385. END SUB
  386.  
  387. SUB CBUYUK
  388. ' LOCATE 12, 35: PRINT "+":
  389.  LOCATE 12, 36: PRINT "+":
  390. END SUB
  391.  
  392. SUB DBUYUK
  393. ' LOCATE 12, 35: PRINT "+"
  394. ' LOCATE 12, 41: PRINT "+"
  395.  LOCATE 12, 36: PRINT "+"
  396.  LOCATE 12, 42: PRINT "+"
  397.  
  398. END SUB
  399.  
  400. SUB EBUYUK
  401. ' LOCATE 12, 35: PRINT "+":
  402.   LOCATE 12, 36: PRINT "+":
  403. END SUB
  404.  
  405. SUB EKRAN
  406. CLS
  407. SCREEN 9: COLOR 4, 3
  408. LOCATE 1, 1: PRINT "█";
  409. FOR I = 1 TO 78
  410. PRINT "▀";
  411. NEXT I
  412.  
  413. PRINT "█";
  414. FOR I = 2 TO 21
  415. LOCATE I, 1: PRINT "█"
  416. NEXT I
  417.  
  418. PRINT "█";
  419. FOR I = 1 TO 78
  420. PRINT "▄";
  421. NEXT I
  422. PRINT "█";
  423.  
  424. FOR I = 2 TO 22
  425. LOCATE I, 80: PRINT "█"
  426. NEXT I
  427.  
  428. LOCATE 3, 1: PRINT "█";
  429. FOR I = 1 TO 78
  430. PRINT "▄";
  431. NEXT I
  432. PRINT "█";
  433.  
  434. LOCATE 9, 1: PRINT "█";
  435. FOR I = 1 TO 78
  436. PRINT "▄";
  437. NEXT I
  438. PRINT "█";
  439.  
  440. LOCATE 14, 1: PRINT "█";
  441. FOR I = 1 TO 78
  442. PRINT "▄";
  443. NEXT I
  444. PRINT "█";
  445.  
  446. COLOR 9, 3: LOCATE 2, 2: FOR I = 1 TO 78: PRINT "█"; : NEXT I
  447.  
  448. COLOR 14: LOCATE 2, 19: PRINT " C A L C U L A T I N G  D I S C R I M I N A N T "
  449.  
  450. END SUB
  451.  
  452. SUB FBUYUK
  453. ' LOCATE 12, 41: PRINT "+":
  454.   LOCATE 12, 42: PRINT "+":
  455. END SUB
  456.  
  457. SUB FPRINT (x%, y%, yazi$, renk%)
  458.     renkal renk%, A%, B%, C%
  459.     renkayar renk%, 0, 0, 0
  460.     COLOR renk%: LOCATE x%, y%: PRINT yazi$
  461.     FOR E% = 0 TO 63
  462.     renkayar renk%, E%, E%, E%
  463.     NEXT
  464.     FOR rx# = 1 TO 500: NEXT
  465.     FOR E% = 63 TO 0 STEP -1
  466.     renkayar renk%, E%, E%, E%
  467.     NEXT
  468.     COLOR 0: LOCATE x%, y%: PRINT SPC(LEN(yazi$));
  469.     renkayar renk%, A%, B%, C%
  470. END SUB
  471.  
  472. SUB renkal (no%, y%, m%, k%)
  473.     DIM regs AS RegType
  474.     regs.ax = &H1015
  475.     regs.bx = no%
  476.     INTERRUPT &H10, regs, regs
  477.     y% = INT(regs.cx / 256)
  478.     m% = regs.cx MOD 256
  479.     k% = INT(regs.dx / 256)
  480.  
  481. END SUB
  482.  
  483. SUB renkayar (no%, yesil%, mavi%, kirm%)
  484.     DIM regs AS RegType
  485.     regs.ax = &H1010
  486.     regs.bx = no%
  487.     regs.cx = 256 * yesil% + mavi%
  488.     regs.dx = 256 * kirm%
  489.     INTERRUPT &H10, regs, regs
  490.  
  491. END SUB
  492.  
  493.